import $api from '@/server/api'

// 获取公式列表
export const querySystemFunction = params => {
  return new Promise((resolve, reject) => {
    $api.payPlanApi.querySystemFunction(params).then(
      res => {
        // 判断缓存中是否有数据
        // if (sessionStorage.getItem('formulaData')) {
        //   resolve(JSON.parse(sessionStorage.getItem('formulaData')))
        //   return
        // }
        // 过滤数据 根据 funcGroup 分类 将分组一样的放到 funcGroup 下
        let funcGroup = []
        res.data.forEach(item => {
          let index = funcGroup.findIndex(group => group.funcGroup === item.funcGroup)
          if (index === -1) {
            funcGroup.push({
              funcGroup: item.funcGroup,
              children: [item]
            })
          } else {
            funcGroup[index].children.push(item)
          }
        })

        //存储数据到sessionStorage
        sessionStorage.setItem('formulaData', JSON.stringify(funcGroup))
        resolve(funcGroup)
      },
      err => {
        reject(err)
      }
    )
  })
}

// 常用函数
let formulaData = []
querySystemFunction({}).then(res => {
  formulaData = res
})
// 批量导出
export { formulaData }
